//
//  CertExtensionType.h
//  TestProject
//
//  Created by 武侠 on 2022/2/17.
//  Copyright © 2022 zhulong. All rights reserved.
//

#ifndef CertExtensionType_h
#define CertExtensionType_h

typedef NS_ENUM(NSInteger, CertExtensionType) {
    CertExtensionNONE,          // 未知类型
    AuthorityKeyIdentifier,     // 机构密钥标识符
    SubjectKeyIdentifier,       // 主体密钥标识符
    KeyUsage,                   // 密钥用法(双证书为关键，单证书为非关键)
    ExtKeyUsage,                // 扩展密钥用途
    PrivateKeyUsagePeriod,      // 私有密钥使用期
    CertificatePolicies,        // CP 证书策略 2.5.29.32
    PolicyMappings,             // 策略映射
    SubjectAltName,             // 主体备用名称
    IssuerAltName,              // 颁发者备用名称
    SubjectDirectoryAttributes, // 主体目录属性
    BasicConstraints,           // 基本限制
    NameConstraints,            // 名称限制
    PolicyConstraints,          // 策略限制
    CRLDistributionPoints,      // CRL分发点
    InhibitAnyPolicy,           // 限制所有策略
    FreshestCRL,                // 最新的CRL
    Idpkix,                     // 私有的 Internet 扩展
    AuthorityInfoAccess,        // 颁发机构信息访问
    SubjectInformationAccess,   // 主体信息访问
    IdentifyCardNumber,         // 个人身份证号码
    InuranceNumber,             // 个人社会保险号
    ICRegistrationNumber,       // 企业工商注册号
    OrganizationCode,           // 企业组织机构代码
    TaxationNumber,             // 企业税号

    ExtCertNetscapeType,        // Netscape证书类型
    
    /* 北京CA扩展 */
    Extension_BJCA_IDCard,           // 扩展：北京CA-个人身份证
    Extension_BJCA_EnterpriseCode,   // 扩展：北京CA-企业机构代码
    Extension_BJCA_NONE_1,           // 扩展：北京CA-未知扩展1
    Extension_BJCA_NONE_14,          // 扩展：北京CA-未知扩展14
    
    Extension_BJCA_NONE_30,          // 扩展：北京CA-未知扩展30
    Extension_BJCA_NONE_3_2,         // 扩展：北京CA-未知扩展3_2
    
    
    /* 自定义扩展 */
    Extension_Person_Identify_Code,  // 扩展：个人身份标识码
    Extension_Insurance_Number,      // 扩展：个人社会保险号码
    Extension_ICRegistration_Number, // 扩展：企业工商注册号
    Extension_Organization_Code,     // 扩展：企业组织机构代码
    Extension_Taxation_Numeber,      // 扩展：企业税号
    
    Extension_Entity_Unique_ID,      // 扩展：证书实体唯一标识
};

#endif /* CertExtensionType_h */
